In modern n-tier architectures, database scalability can be achieved by increasing the capacity of the database server. The advantage of this approach is simplicity because it does not require any architectural changes. However, larger servers are usually more expensive per unit of performance than smaller servers, and have fundamental scalability limitations.
Database scalability can also be achieved using a horizontal partitioning approach that divides a large database into separate smaller databases. This approach, however, requires rewriting existing applications to intelligently access different databases. In addition, this approach complicates the development of new applications by requiring extra logic enabling access to multiple databases.